package com.kpx.app.utils.datautils;

import java.util.List;

/**
 * 集合相关
 *
 * @author Jack Lance
 */
public class CollectionUtil {
    private static final String TAG = "CollectionUtil";

    /**
     * 元素移动到末尾
     */
    public static void moveToEnd(List<String> list, String element) {
        int index = getElementIndex(list, element);
        for (int i = index; i < list.size() - 1; i++) {
            String temp = list.get(i);
            // 交换元素
            list.set(i, list.get(i + 1));
            list.set(i + 1, temp);
        }
    }

    /**
     * 获取元素在集合中的位置
     */
    public static int getElementIndex(List<String> list, String element) {
        int index = 0;
        for (String value : list) {
            if (value == element)
                return index;
            index++;
        }
        return index;
    }

   /* public static void printList(List<String> list) {
        LogUtils.e(TAG, "-------------------print list start-------------------------");
        for (String value : list) {
            LogUtils.e(TAG, "value="+value);
        }
        LogUtils.e(TAG, "-------------------print list end-------------------------"+"\n\n");
    }*/

    public static <T> void printList(List<T> list) {
        for (T t : list) {
            LogUtils.d(TAG, t.toString());
        }
    }

    /**
     * 比较两个集合，获取不同元素组成的集合
     */
    public static <T> List<T> getDiffList(List<T> sourceList, List<T> resultList) {
        for (int i = 0; i < resultList.size(); i++) {
            for (int j = 0; j < sourceList.size(); j++) {
                T result = resultList.get(i);
                if (result.equals(sourceList.get(j))) {
                    resultList.remove(i);
                    i = -1; // i从0开始（顶层for循环 i++，所以这里是-1），因为上面移除的一个元素
                    break;
                }
            }
        }
        return resultList;
    }
}
